1. Field of the Invention
The present invention relates generally to data compression for the coding of video image signals. More particularly, the invention relates to a method for coding a macroblock for intra-frame data representing the digital embodiment of video image signals in video conferencing systems.
2. Description of the Related Art
The electronic transmission of video pictures, either analog or digital, has presented various problems of both transmission quality and transmission efficiency in the art of video conferencing. In the context of digital transmissions particularly, quality and efficiency issues are frequently intertwined. Over the years, the most common solution to these issues has involved various types of video compression.
There are two types of video compression, spatial compression and temporal compression. Spatial compression strives to achieve a reduction in the information content of the video transmission by applying mathematical methods to reduce the redundancy of the contents of one video frame in comparison to another (thus, to reduce spatial redundancy). For video conferencing systems (that is, low bit rate coding applications), this problem is even more pronounced because such video scenes generally contain a highly correlated background and a foreground with a small to medium amount of motion. One of the most common mathematical methods for reducing spatial redundancy is discrete cosine transform (DCT), as used by the Joint Picture Experts Group (JPEG) standard. In particular, television video signals, for example, are frequently compressed by DCT to reduce spatial redundancy pursuant to the Motion-JPEG (M-JPEG) standard.
In contrast to-spatial compression, temporal compression is frequently used for video signals other than television video signals. Video conferencing, for example, frequently applies temporal compression for purposes of video compression, pursuant to the Motion Picture Experts Group (MPEG) standard. One of the fundamental elements of temporal compression involves the reduction of data rates, and a common method for reducing data rates in temporal compression is motion compensation. Motion compensation is a method of predicting one frame based upon an earlier frame. For example, in motion compensation, a predicted frame (P-frame) is based on an intra-coded frame (I-frame, that is, a frame that has only been spatially coded). In this manner, using temporal compression, the P-frame is coded based on the I-frame. Thus, if there is little difference between Alto the P-frame and the I-frame, motion compensation may result in a significant reduction of the data needed to represent the content of the video using temporal compression.
Various standards have been proposed for using both spatial and temporal compression for the purposes of video compression. The International Telecommunication Union (ITU), for example, has established the H.324 standard for the transmission of low bit-rate multimedia over general switched telephone networks, which includes video conferencing. The H.324 video conferencing standard generally utilizes the H.263 video coding system. H.324 also plans to incorporate a proposed improvement for H.263, namely, H.263+ as well as H.263++. Currently, however, H.263 represents the most recognized form of video compression for video conferencing, including the various MPEG standards, such as MPEG-1 and MPEG-2, which use the H.324/H.263 standard. Indeed, the proposed MPEG-4 standard will also incorporate the H.324/H.263 standard.
All of these standards, however, focus more on temporal compression than spatial compression, most likely due to the focus on compression for video conferencing. Indeed, most of these standards utilize some form of block-matching, motion-estimation compensation technique to accomplish temporal compression, generally by inter-frame (or P-frame) coding. As a result, the focus on temporal compression has resulted in a lack of attention to spatial compression. Also, the use of inter-frame (P-frame) temporal coding has resulted in little development of intra-frame (I-frame) coding techniques. Moreover, even the known I-frame coding techniques do not take full advantage of the inter-block correlation present in typical pictures of video conferencing systems.
This inattention in video compression to I-frame spatial coding gives rise to inefficiencies and other diminutions in quality that could be achieved by further development of compression techniques for I-frame spatial coding. Thus, the current video coding techniques reflect an unsatisfactory development of methods to diminish spatial redundancy in I-frame coding to provide better efficiency and better quality for video compression, particularly for video conferencing applications.
Accordingly, the present invention is directed to a method that substantially obviates one or more of the problems due to the limitations, shortcomings, and disadvantages of the related art.
One advantage of the invention is greater efficiency in video compression by reducing spatial redundancy through improvements in intra-frame coding.
Another advantage of the invention is the improvement of the standard coding protocols, such as the H.263 video coding standard and the H.324 video conferencing standard, which ensures forward compatibility.
To achieve these and other advantages, one aspect of the invention includes a method of data compression. This method comprises receiving a plurality of macroblocks; selecting one of the macroblocks; determining a difference between the selected macroblock and at least one other macroblock; and encoding the selected macroblock based on the difference.
A further aspect of the invention includes a method of coding and decoding. This method comprises encoding a coding macroblock based on a difference between the coding macroblock and a reference macroblock; and decoding the coding macroblock based on the difference between the coding macroblock and the reference macroblock.
Another aspect of the invention includes a method of coding. This method comprises a storing component configured to store a reference macroblock; a receiving component configured to receive a coding macroblock to be coded; a determining component configured to determine a difference between the coding macroblock and the reference macroblock; and an encoding component configured to encode the coding macroblock based on the difference.
Still another aspect of the invention includes a method of decoding. This method comprises a storing component configured to store a reference macroblock; a receiving component configured to receive a coded macroblock, which was coded based on a difference with the reference macroblock; and a decoding component configured to decode the coded macroblock based on the difference.
Additional aspects of the invention are disclosed and defined by the appended claims. It is to be understood that both the foregoing general description and the following detained description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.